# 基本运算操作
from __future__ import print_function
import torch

# 加法
x = torch.rand(5, 3)
y = torch.rand(5, 3)

# 直接加
print(x + y)

# 调用add函数加
print(torch.add(x, y))

# 存结果
res = torch.empty(5, 3)
torch.add(x, y, out=res)
print(res)

# 原地置换
# y=y+x
y.add_(x)
print(y)

# 切片
# 取第一列的全部元素
print(y[:, 1])
# 取前2列的全部元素
print(y[:, :2])

# 改变张量形状
# 保证元素总个数不发生变化
x = torch.randn(4, 4)
y = x.view(16)
z = x.view(-1, 8)
# w = x.view(12) 报错
print(x.size(), y.size(), z.size())

# .item() 张量中只有一个值的时候可以取出张量的值
x = torch.randn(1)
print(x)
print(x.item())
